using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Sys;
using net_work.Data.Entity.Sys;
using net_work.Data.VO.Sys;

namespace net_work.IService.Sys;

public interface IAdministrativeClassService
{
    /// <summary>
    /// 分页查询行政班
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<AdministrativeClassResult>> GetAdministrativeClasssPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据行政班ID查询行政班信息
    /// </summary>
    /// <param name="administrativeClassId">行政班ID</param>
    /// <returns>行政班信息</returns>
    Task<AdministrativeClass?> SelectByIdAsync(long administrativeClassId);

    /// <summary>
    /// 插入行政班
    /// </summary>
    /// <param name="administrativeClassAddRequest">新增行政班实体</param>
    /// <returns>行政班ID</returns>
    Task<long> InsertAdministrativeClass(AdministrativeClassAddRequest administrativeClassAddRequest);

    /// <summary>
    /// 更新行政班信息
    /// </summary>
    /// <param name="administrativeClassUpdateRequest">更新行政班信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateAdministrativeClass(AdministrativeClassUpdateRequest administrativeClassUpdateRequest);

    /// <summary>
    /// 删除行政班
    /// </summary>
    /// <param name="ids">行政班ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteAdministrativeClassByIds(List<long> ids);
}